package com.niuwa.p2p.vo.business;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.niuwa.p2p.entity.productTemplate.ProductProtocol;

/**
 * 产品详情vo，包含3张表（p2p_product、p2p_direct_product、p2p_loan_claim）
 * 
 * @author bwz
 */
public class ClaimDetailVo {

	private String productCode;
	/**
	 * 产品模板ID
	 * 
	 * @pdOid 067fbdb6-679b-4c08-bc45-e17b4b29ee4c
	 */
	private Long tempId;
	
	/**
	 * 产品名称
	 * 
	 * @pdOid c6312ec7-4b6a-4716-8c0b-c0b6d89b9da6
	 */
	private String productName;
	/**
	 * 产品简介
	 * 
	 * @pdOid 25572f39-4a02-4681-9238-80f33c2173a1
	 */
	private String prodDesc;
	/**
	 * 到期状态
	 * 
	 * @pdOid bfdbfd64-cacd-4017-a0dd-8062ef94fbde
	 */
	private String expireStatus;
	/**
	 * 投资人数
	 * 
	 * @pdOid b2926f07-802d-4087-a8a1-6e23264dfc98
	 */
	private Integer investorCount;
	/**
	 * 产品到期日
	 * 
	 * @pdOid 24f46e84-1e96-46ac-814a-19df08031e01
	 */
	private Date expireTime;
	/**
	 * 起售时间
	 * 
	 * @pdOid 2f9bc465-95bb-4f09-a88e-20c374076cbd
	 */
	private Date startSellTime;
	/**
	 * 停售时间
	 * 
	 * @pdOid ab807056-e5a2-4ddc-ae85-2ee58f4adcea
	 */
	private Date endSellTime;

	/**
	 * 产品种类
	 * 
	 * @pdOid 33f16d5d-e8c8-41b8-9ef0-50b6ce7c7e2f
	 */
	private String prodKind;
	/**
	 * 开放用户
	 * 
	 * @pdOid 57fce3ca-3e80-4dea-b516-d0209c56bc1f
	 */
	private String openCustomer;
	/**
	 * 用户来源
	 * 
	 * @pdOid 51de2b6c-8a8a-46a6-a171-c4a94f5660c5
	 */
	private String customerOrigin;
	/**
	 * 发布时间
	 * 
	 * @pdOid a3b1fb83-9151-471a-a7ed-68cf11010f9a
	 */
	private Date releaseTime;
	/**
	 * 有效期限
	 * 
	 * @pdOid f3e37b84-4a8a-4e45-9367-5da2de32fac7
	 */
	private Integer validTerm;
	/**
	 * 是否限制有效期限
	 * 
	 * @pdOid 7c525edc-95f5-49bc-b39b-48e3805bd3b5
	 */
	private String isValidTerm;
	/**
	 * 起售金额
	 * 
	 * @pdOid 2ca63e16-f86d-4cca-b81f-3aaf9fed8b20
	 */
	private BigDecimal minAmount;
	/**
	 * 购买上限
	 * 
	 * @pdOid 607dc95a-6dec-4866-bedd-8f139b4ee387
	 */
	private BigDecimal maxAmount;
	/**
	 * 递增金额
	 * 
	 * @pdOid cb2d46b5-6eda-4c48-bb38-ccb50a06ac8a
	 */
	private BigDecimal stepAmount;
	/**
	 * 附加收益
	 * 
	 * @pdOid 8ec81566-cfb9-4835-84be-52892d7261b1
	 */
	private BigDecimal addYield;

	/**
	 * 审核人
	 * 
	 * @pdOid d2d28ab7-4447-4430-80f9-0755cf4dc83a
	 */
	private Long auditor;
	/**
	 * 最低持有期限
	 * 
	 * @pdOid d39a0990-b815-492e-8f11-1bd7a95f8599
	 */
	private Integer minHoldTerm;
	/**
	 * 持有期限周期
	 * 
	 * @pdOid c66e63a8-a336-43a6-a007-db597cd33fb1
	 */
	private String holdTermType;

	/**
	 * 完成进度
	 */
	private BigDecimal completedProgress;

	/**
	 * 有效期限周期
	 */
	private String validTermType;

	private String projectNo;
	/**
	 * 投标截止时间
	 * 
	 * @pdOid 372fadfb-d962-4ba5-a08a-b37b34e2ba91
	 */
	private Date bidStopTime;
	/**
	 * 是否允许转让
	 * 
	 * @pdOid a9e59dbd-1671-410d-a38a-f5e0ea0351dd
	 */
	private String isTrans;
	/**
	 * 逾期服务费率
	 * 
	 * @pdOid 651f0111-6c37-4685-b6b2-dd7dd87ddc8d
	 */
	private Double overdueServiceRate;
	/**
	 * 转让费率
	 * 
	 * @pdOid 0776a8a8-de8f-45f2-927f-653461674c8e
	 */
	private Double transRate;

	/**
	 * 项目名称
	 * 
	 * @pdOid eb8b1f42-9403-4ac2-abb6-04d770db6564
	 */
	private java.lang.String projectName;
	/**
	 * 项目渠道
	 * 
	 * @pdOid b9a205aa-c265-42c8-bffa-c6a6f7863112
	 */
	private java.lang.String projectChannel;
	/**
	 * 原始债权编号
	 * 
	 * @pdOid 9657c5c4-a947-404e-bf88-cf07ad80dffa
	 */
	private java.lang.String originClaimNo;
	/**
	 * 借款金额
	 * 
	 * @pdOid 40b4af3f-5ef1-4f29-a745-a21ac105c371
	 */
	private BigDecimal loanAmount;
	/**
	 * 债权余额
	 * 
	 * @pdOid d119c800-592e-45b1-84a8-000840d31765
	 */
	private BigDecimal remainClaimAmount;
	/**
	 * 借款期限
	 * 
	 * @pdOid 2b659539-434e-41fe-a924-55645afb993b
	 */
	private Integer loanTerm;
	/**
	 * 剩余期限
	 * 
	 * @pdOid ada4f4f8-d673-4c8b-8843-22f7dc4a63d4
	 */
	private Integer remainTerm;
	/**
	 * 期限类型
	 * 
	 * @pdOid 09094db2-64ce-4dac-ad6e-cfa663f448c9
	 */
	private java.lang.String timeType;
	/**
	 * 借款利率
	 * 
	 * @pdOid 3b0a5254-b1fb-4fd8-9df9-6c1721e51ab5
	 */
	private BigDecimal interestRate;
	/**
	 * 借款日期
	 * 
	 * @pdOid ed744077-b2b7-418c-87ea-93c143ab669c
	 */
	private java.util.Date loanDate;
	/**
	 * 借款到期日
	 * 
	 * @pdOid 7604a0d0-57ea-4046-9cbc-e8e23baeabc0
	 */
	private java.util.Date expireDate;
	/**
	 * 期望放款日
	 * 
	 * @pdOid 979a2dd8-03c6-4c19-a096-73a72e5474ea
	 */
	private java.util.Date expectDate;
	/**
	 * 最近还款日
	 * 
	 * @pdOid 740087cf-13ff-4f9c-b64f-87cac37bcd9c
	 */
	private java.util.Date nextRepayDate;
	/**
	 * 项目去向
	 * 
	 * @pdOid e2133f11-49d2-412c-9751-ba96e8bd45ae
	 */
	private java.lang.String projectTo;
	/**
	 * 发布状态
	 * 
	 * @pdOid 64c968c9-89ed-4acc-b1f7-82a4dc8016c5
	 */
	private java.lang.String releaseStatus;
	/**
	 * 入库时间
	 * 
	 * @pdOid ba1aa33a-be1e-4b57-9ac6-d874195e4ee5
	 */
	private java.util.Date createTime;
	/**
	 * 项目渠道公司
	 * 
	 * @pdOid 689dfb6a-caf3-4bd1-b512-b1b653cc896b
	 */
	private Long prjChlCorp;
	/**
	 * 项目渠道类型
	 * 
	 * @pdOid 157cbbc2-3e37-40bd-8325-216fbb50155d
	 */
	private java.lang.String prjChlType;
	/**
	 * 担保公司
	 * 
	 * @pdOid aab2a7d9-ceb3-44a9-bf06-f8362fbbea69
	 */
	private Long guaranteeCorp;
	/**
	 * 担保公司
	 * 
	 * @pdOid 3bb8e775-cce1-45f9-bfe9-ae0e831c12b4
	 */
	private java.lang.String guaranteeName;
	/**
	 * 担保方式
	 * 
	 * @pdOid 3bb8e775-cce1-45f9-bfe9-ae0e831c12b4
	 */
	private java.lang.String guaranteeMethod;
	/**
	 * 平台费率
	 * 
	 * @pdOid e69b1d1a-e25d-44b1-b638-a0ff156ad04d
	 */
	private BigDecimal platformRate;
	/**
	 * 担保费率
	 * 
	 * @pdOid 43fc12c1-ee79-4293-a941-1665cc32f982
	 */
	private BigDecimal guaranteeRate;
	/**
	 * 是否逾期
	 * 
	 * @pdOid 1a51679b-0b60-4dbe-a782-e350d81f3b2d
	 */
	private String isOverdue;
	/**
	 * 还款类型
	 * 
	 * @pdOid a3d8233b-85d3-4718-9c9e-e4de7214c99e
	 */
	private String repayType;
	/**
	 * 借款产品
	 * 
	 * @pdOid 8426f073-d53a-4dcc-81e8-67ecc11461cf
	 */
	private String loanProductType;
	/**
	 * 操作人
	 * 
	 * @pdOid 16e7d03b-d087-4071-acbe-ac6e9dafaf48
	 */
	private Long operator;
	/**
	 * 借款人
	 * 
	 * @pdOid 1f186264-3a60-491a-a7d3-3b83c29a8704
	 */
	private Long lender;
	/**
	 * 还款方式
	 * 
	 * @pdOid f9888e48-8620-446d-9a71-ef08ba64f9d0
	 */
	private String repayMethod;
	/**
	 * 项目类型
	 * 
	 * @pdOid 9a1ee238-6407-4e0a-857b-055a2d0c833b
	 */
	private String projectType;
	
	
	//所属项目
	private String belongProject;
	
	// 产品绑定的协议列表
	private List<ProductProtocol> productProtocols;
	
	//
	private String tempName;
	
	//收益说明
	private String incomeDesc;
	
	// 直投产品类型
	private String directProdType;
	
	private String lenderName; 
	
	private String operatorName;
	
	// 满标日
	private Date fullScaleDate;
	
	// 剩余金额
	private BigDecimal remainAmount;
	
	private BigDecimal investServiceFee;//投资服务费率(%)
	private BigDecimal prepaymentFee;// 提前还款补偿金(%)
	private String allowEarlyRepay;//允许提前还款
	private BigDecimal earlyPayRate;//	提前还款手续费率
	private String borrowerName;//借款人名称
	private BigDecimal overdueRate;//逾期费率
	
	private String corpNo;
	private long custId;
	private String borrowerType;
	private long version;
	
	public long getVersion() {
		return version;
	}
	public void setVersion(long version) {
		this.version = version;
	}
	public String getCorpNo() {
		return corpNo;
	}
	public void setCorpNo(String corpNo) {
		this.corpNo = corpNo;
	}
	public long getCustId() {
		return custId;
	}
	public void setCustId(long custId) {
		this.custId = custId;
	}
	public String getBorrowerType() {
		return borrowerType;
	}
	public void setBorrowerType(String borrowerType) {
		this.borrowerType = borrowerType;
	}
	/**
	 * 强制流标日
	 */
	private Date forceLoseDate;
	
	public Date getForceLoseDate() {
		return forceLoseDate;
	}
	public void setForceLoseDate(Date forceLoseDate) {
		this.forceLoseDate = forceLoseDate;
	}
	public BigDecimal getOverdueRate() {
		return overdueRate;
	}
	public void setOverdueRate(BigDecimal overdueRate) {
		this.overdueRate = overdueRate;
	}
	public BigDecimal getInvestServiceFee() {
		return investServiceFee;
	}
	public void setInvestServiceFee(BigDecimal investServiceFee) {
		this.investServiceFee = investServiceFee;
	}
	public BigDecimal getPrepaymentFee() {
		return prepaymentFee;
	}
	public void setPrepaymentFee(BigDecimal prepaymentFee) {
		this.prepaymentFee = prepaymentFee;
	}
	public String getAllowEarlyRepay() {
		return allowEarlyRepay;
	}
	public void setAllowEarlyRepay(String allowEarlyRepay) {
		this.allowEarlyRepay = allowEarlyRepay;
	}
	public BigDecimal getEarlyPayRate() {
		return earlyPayRate;
	}
	public void setEarlyPayRate(BigDecimal earlyPayRate) {
		this.earlyPayRate = earlyPayRate;
	}
	public String getBorrowerName() {
		return borrowerName;
	}
	public void setBorrowerName(String borrowerName) {
		this.borrowerName = borrowerName;
	}
	public java.lang.String getGuaranteeName() {
		return guaranteeName;
	}
	public void setGuaranteeName(java.lang.String guaranteeName) {
		this.guaranteeName = guaranteeName;
	}
	public String getProductCode() {
		return productCode;
	}
	public void setProductCode(String productCode) {
		this.productCode = productCode;
	}
	public Long getTempId() {
		return tempId;
	}
	public void setTempId(Long tempId) {
		this.tempId = tempId;
	}
	public String getProductName() {
		return productName;
	}
	public void setProductName(String productName) {
		this.productName = productName;
	}
	public String getProdDesc() {
		return prodDesc;
	}
	public void setProdDesc(String prodDesc) {
		this.prodDesc = prodDesc;
	}
	public String getExpireStatus() {
		return expireStatus;
	}
	public void setExpireStatus(String expireStatus) {
		this.expireStatus = expireStatus;
	}
	public Integer getInvestorCount() {
		return investorCount;
	}
	public void setInvestorCount(Integer investorCount) {
		this.investorCount = investorCount;
	}
	public Date getExpireTime() {
		return expireTime;
	}
	public void setExpireTime(Date expireTime) {
		this.expireTime = expireTime;
	}
	public Date getStartSellTime() {
		return startSellTime;
	}
	public void setStartSellTime(Date startSellTime) {
		this.startSellTime = startSellTime;
	}
	public Date getEndSellTime() {
		return endSellTime;
	}
	public void setEndSellTime(Date endSellTime) {
		this.endSellTime = endSellTime;
	}
	public String getProdKind() {
		return prodKind;
	}
	public void setProdKind(String prodKind) {
		this.prodKind = prodKind;
	}
	public String getOpenCustomer() {
		return openCustomer;
	}
	public void setOpenCustomer(String openCustomer) {
		this.openCustomer = openCustomer;
	}
	public String getCustomerOrigin() {
		return customerOrigin;
	}
	public void setCustomerOrigin(String customerOrigin) {
		this.customerOrigin = customerOrigin;
	}
	public Date getReleaseTime() {
		return releaseTime;
	}
	public void setReleaseTime(Date releaseTime) {
		this.releaseTime = releaseTime;
	}
	public Integer getValidTerm() {
		return validTerm;
	}
	public void setValidTerm(Integer validTerm) {
		this.validTerm = validTerm;
	}
	public String getIsValidTerm() {
		return isValidTerm;
	}
	public void setIsValidTerm(String isValidTerm) {
		this.isValidTerm = isValidTerm;
	}
	public BigDecimal getMinAmount() {
		return minAmount;
	}
	public void setMinAmount(BigDecimal minAmount) {
		this.minAmount = minAmount;
	}
	public BigDecimal getMaxAmount() {
		return maxAmount;
	}
	public void setMaxAmount(BigDecimal maxAmount) {
		this.maxAmount = maxAmount;
	}
	public BigDecimal getStepAmount() {
		return stepAmount;
	}
	public void setStepAmount(BigDecimal stepAmount) {
		this.stepAmount = stepAmount;
	}
	public BigDecimal getAddYield() {
		return addYield;
	}
	public void setAddYield(BigDecimal addYield) {
		this.addYield = addYield;
	}
	public Long getAuditor() {
		return auditor;
	}
	public void setAuditor(Long auditor) {
		this.auditor = auditor;
	}
	public Integer getMinHoldTerm() {
		return minHoldTerm;
	}
	public void setMinHoldTerm(Integer minHoldTerm) {
		this.minHoldTerm = minHoldTerm;
	}
	public String getHoldTermType() {
		return holdTermType;
	}
	public void setHoldTermType(String holdTermType) {
		this.holdTermType = holdTermType;
	}
	public BigDecimal getCompletedProgress() {
		return completedProgress;
	}
	public void setCompletedProgress(BigDecimal completedProgress) {
		this.completedProgress = completedProgress;
	}
	public String getValidTermType() {
		return validTermType;
	}
	public void setValidTermType(String validTermType) {
		this.validTermType = validTermType;
	}
	public String getProjectNo() {
		return projectNo;
	}
	public void setProjectNo(String projectNo) {
		this.projectNo = projectNo;
	}
	public Date getBidStopTime() {
		return bidStopTime;
	}
	public void setBidStopTime(Date bidStopTime) {
		this.bidStopTime = bidStopTime;
	}
	public String getIsTrans() {
		return isTrans;
	}
	public void setIsTrans(String isTrans) {
		this.isTrans = isTrans;
	}
	public Double getOverdueServiceRate() {
		return overdueServiceRate;
	}
	public void setOverdueServiceRate(Double overdueServiceRate) {
		this.overdueServiceRate = overdueServiceRate;
	}
	public Double getTransRate() {
		return transRate;
	}
	public void setTransRate(Double transRate) {
		this.transRate = transRate;
	}
	public java.lang.String getProjectName() {
		return projectName;
	}
	public void setProjectName(java.lang.String projectName) {
		this.projectName = projectName;
	}
	public java.lang.String getProjectChannel() {
		return projectChannel;
	}
	public void setProjectChannel(java.lang.String projectChannel) {
		this.projectChannel = projectChannel;
	}
	public java.lang.String getOriginClaimNo() {
		return originClaimNo;
	}
	public void setOriginClaimNo(java.lang.String originClaimNo) {
		this.originClaimNo = originClaimNo;
	}
	public BigDecimal getLoanAmount() {
		return loanAmount;
	}
	public void setLoanAmount(BigDecimal loanAmount) {
		this.loanAmount = loanAmount;
	}
	public BigDecimal getRemainClaimAmount() {
		return remainClaimAmount;
	}
	public void setRemainClaimAmount(BigDecimal remainClaimAmount) {
		this.remainClaimAmount = remainClaimAmount;
	}
	public Integer getLoanTerm() {
		return loanTerm;
	}
	public void setLoanTerm(Integer loanTerm) {
		this.loanTerm = loanTerm;
	}
	public Integer getRemainTerm() {
		return remainTerm;
	}
	public void setRemainTerm(Integer remainTerm) {
		this.remainTerm = remainTerm;
	}
	public java.lang.String getTimeType() {
		return timeType;
	}
	public void setTimeType(java.lang.String timeType) {
		this.timeType = timeType;
	}
	public BigDecimal getInterestRate() {
		return interestRate;
	}
	public void setInterestRate(BigDecimal interestRate) {
		this.interestRate = interestRate;
	}
	public java.util.Date getLoanDate() {
		return loanDate;
	}
	public void setLoanDate(java.util.Date loanDate) {
		this.loanDate = loanDate;
	}
	public java.util.Date getExpireDate() {
		return expireDate;
	}
	public void setExpireDate(java.util.Date expireDate) {
		this.expireDate = expireDate;
	}
	public java.util.Date getExpectDate() {
		return expectDate;
	}
	public void setExpectDate(java.util.Date expectDate) {
		this.expectDate = expectDate;
	}
	public java.util.Date getNextRepayDate() {
		return nextRepayDate;
	}
	public void setNextRepayDate(java.util.Date nextRepayDate) {
		this.nextRepayDate = nextRepayDate;
	}
	public java.lang.String getProjectTo() {
		return projectTo;
	}
	public void setProjectTo(java.lang.String projectTo) {
		this.projectTo = projectTo;
	}
	public java.lang.String getReleaseStatus() {
		return releaseStatus;
	}
	public void setReleaseStatus(java.lang.String releaseStatus) {
		this.releaseStatus = releaseStatus;
	}
	public java.util.Date getCreateTime() {
		return createTime;
	}
	public void setCreateTime(java.util.Date createTime) {
		this.createTime = createTime;
	}
	public Long getPrjChlCorp() {
		return prjChlCorp;
	}
	public void setPrjChlCorp(Long prjChlCorp) {
		this.prjChlCorp = prjChlCorp;
	}
	public java.lang.String getPrjChlType() {
		return prjChlType;
	}
	public void setPrjChlType(java.lang.String prjChlType) {
		this.prjChlType = prjChlType;
	}
	public Long getGuaranteeCorp() {
		return guaranteeCorp;
	}
	public void setGuaranteeCorp(Long guaranteeCorp) {
		this.guaranteeCorp = guaranteeCorp;
	}
	public java.lang.String getGuaranteeMethod() {
		return guaranteeMethod;
	}
	public void setGuaranteeMethod(java.lang.String guaranteeMethod) {
		this.guaranteeMethod = guaranteeMethod;
	}
	public BigDecimal getPlatformRate() {
		return platformRate;
	}
	public void setPlatformRate(BigDecimal platformRate) {
		this.platformRate = platformRate;
	}
	public BigDecimal getGuaranteeRate() {
		return guaranteeRate;
	}
	public void setGuaranteeRate(BigDecimal guaranteeRate) {
		this.guaranteeRate = guaranteeRate;
	}
	public String getIsOverdue() {
		return isOverdue;
	}
	public void setIsOverdue(String isOverdue) {
		this.isOverdue = isOverdue;
	}
	public String getRepayType() {
		return repayType;
	}
	public void setRepayType(String repayType) {
		this.repayType = repayType;
	}
	public String getLoanProductType() {
		return loanProductType;
	}
	public void setLoanProductType(String loanProductType) {
		this.loanProductType = loanProductType;
	}
	public Long getOperator() {
		return operator;
	}
	public void setOperator(Long operator) {
		this.operator = operator;
	}
	public Long getLender() {
		return lender;
	}
	public void setLender(Long lender) {
		this.lender = lender;
	}
	public String getRepayMethod() {
		return repayMethod;
	}
	public void setRepayMethod(String repayMethod) {
		this.repayMethod = repayMethod;
	}
	public String getProjectType() {
		return projectType;
	}
	public void setProjectType(String projectType) {
		this.projectType = projectType;
	}
	public String getBelongProject() {
		belongProject = this.projectNo + "," + this.projectName;
		return belongProject;
	}
	public void setBelongProject(String belongProject) {
		this.belongProject = belongProject;
	}
	public List<ProductProtocol> getProductProtocols() {
		return productProtocols;
	}
	public void setProductProtocols(List<ProductProtocol> productProtocols) {
		this.productProtocols = productProtocols;
	}
	public String getTempName() {
		return tempName;
	}
	public void setTempName(String tempName) {
		this.tempName = tempName;
	}
	public String getIncomeDesc() {
		return incomeDesc;
	}
	public void setIncomeDesc(String incomeDesc) {
		this.incomeDesc = incomeDesc;
	}
	public String getDirectProdType() {
		return directProdType;
	}
	public void setDirectProdType(String directProdType) {
		this.directProdType = directProdType;
	}
	public String getLenderName() {
		return lenderName;
	}
	public void setLenderName(String lenderName) {
		this.lenderName = lenderName;
	}
	public String getOperatorName() {
		return operatorName;
	}
	public void setOperatorName(String operatorName) {
		this.operatorName = operatorName;
	}
	public Date getFullScaleDate() {
		return fullScaleDate;
	}
	public void setFullScaleDate(Date fullScaleDate) {
		this.fullScaleDate = fullScaleDate;
	}
	public BigDecimal getRemainAmount() {
		return remainAmount;
	}
	public void setRemainAmount(BigDecimal remainAmount) {
		this.remainAmount = remainAmount;
	}
	
}
